widget: Also reset focus on non-container widgets
authorTimm Bäder <mail@baedert.org>
Wed, 8 Feb 2017 08:26:40 +0000 (09:26 +0100)
committerTimm Bäder <mail@baedert.org>
Fri, 31 Mar 2017 07:50:39 +0000 (09:50 +0200)
gtk/gtkwidget.c

index d7a9951db13ff2f3833a0ad761b7cdc1eb2ee948..f89351aff61428e3a617b5a2ec0d959ac1db13f0 100644 (file)
@@ -7149,14 +7149,11 @@ static void
 reset_focus_recurse (GtkWidget *widget,
                     gpointer   data)
 {
-  if (GTK_IS_CONTAINER (widget))
-    {
-      gtk_widget_set_focus_child (widget, NULL);
+  gtk_widget_set_focus_child (widget, NULL);
 
-      gtk_container_foreach (GTK_CONTAINER (widget),
-                            reset_focus_recurse,
-                            NULL);
-    }
+  gtk_widget_forall (widget,
+                     reset_focus_recurse,
+                     NULL);
 }
 
 static void
@@ -7210,9 +7207,9 @@ gtk_widget_real_grab_focus (GtkWidget *focus_widget)
           * actually, this is very questionable behavior.
           */
 
-         gtk_container_foreach (GTK_CONTAINER (toplevel),
-                                reset_focus_recurse,
-                                NULL);
+          gtk_widget_forall (toplevel,
+                             reset_focus_recurse,
+                             NULL);
        }
 
       /* now propagate the new focus up the widget tree and finally